<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>创建一个基于数组的栈</title>
</head>

<body>
    <script>
        /* 使用数组方式实现Stack，时间复杂度为O(n) */
        /* ES6新语法声明class */
        class Stack {
            constructor() {
                this.items = [];
            }
            push(element) {
                this.items.push(element);
            }
            pop() {
                return this.items.pop();
            }
            peek() {
                return this.items[this.items.length - 1];
            }
            isEmpty() {
                return this.items.length == 0;
            }
            clear() {
                this.items = [];
            }
            size() {
                return this.items.length;
            }
        }

        const stack = new Stack();
        console.log(stack.isEmpty());
        stack.push(1);
        stack.push(2);
        console.log(stack.peek());

        console.log(stack.pop(), stack.size());
    </script>
</body>

</html>